#include <bits/stdc++.h>
using namespace std;
vector<int> sushu;

bool check(int a){
	int sq=sqrt(a);
	for(int i=0;sushu[i]<=sq&&i<sushu.size();i++)
		if(a%sushu[i]==0)return false;
	return true;
}
int turn(int a){
	int b=0;
	if(a/1000){
		b=a*1000;
		b+=a/1000;
		b+=(a/100%10)*10;
		b+=(a/10%10)*100;
		return b;
	}
	if(a/100){
		b=a*100;
		b+=a/100;
		b+=(a/10%10)*10;
		return b;
	}
	if(a/10){
		b=a*10;
		b+=a/10;;
		return b;
	}
}

void initialization(int b){

	sushu.push_back(2);
	sushu.push_back(3);
	int sq=sqrt(b);
	for(int i=5;i<sq;i++){
	if(check(i))sushu.push_back(i);
	}
	return;
}

int main(void){
	int a,b,c,d;
	bool sign=true;
	vector<int> ans;
	cin>>a>>b;
	initialization(b);
	
	if(a<=5&&b>5)cout<<5<<endl;
	if(a<=7&&b>7)cout<<7<<endl;
	if(a<=11&&b>11)cout<<11<<endl;
	if(b>11){

//		if(a<10)a=10;
//		else if(a<1000)a=a/10;
//		else if(a<100000)a=a/100;
//		else if(a<10000000)a=a/1000;
//		else if(a<1000000000)a=a/10000;
		if(b>9999999)b=9999999;
		for(int i=10;true;i++){
				d=turn(i);
				if(d>b)break;
				if(d<a)continue;
				if(check(d))ans.push_back(d);
		}
	}
	sort(ans.begin(),ans.end());


	for(int i=0;i<ans.size();i++){
		cout<<ans[i]<<endl;
	}
	return 0;
}
